'''
阶乘：也是数学里的一种术语；
阶乘指从1乘以2乘以3乘以4一直乘到所要求的数；
在表达阶乘时，就使用“！”来表示。如h阶乘，就表示为h!；
阶乘一般很难计算，因为积都很大。
Python练习题问题如下：
提问：求1+2!+3!+...+20!的和
'''
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("方法一")
n = 0
s = 0
t = 1
for n in range(1, 21):
    t *= n
    s += t
print("1! + 2! + 3! + ... + 20! = %d"% s)

print('''

方法二
''')
s = 0
l = range(1, 21)
def op(x):
    r = 1
    for i in range(1, x + 1):
        r *= i
    return r
s = sum(map(op, l))
print("1! + 2! + 3! + ... + 20! = %d"% s)